package org.focusj.scala.colls

/**
 * scala
 */
object Fib {
    /**
     * 解释一下这种算法的思路：
     * 1. 1,1是整个数列的基础，整个数列的生成种子
     * 2。 数列生成的思路：现有数列与数列左移位进行求和操作
     * ---------------------------------
     * 1 1 2 3 5 8 13
     * 1 2 3 5 8 13
     */
    lazy val fib: Stream[BigInt] = Stream.cons(1, Stream.cons(1, (fib zip fib.tail).map(p => p._1 + p._2)))

    def main(args: Array[String]) {
        val list1 = List(1, 2, 3, 4, 5, 6)

        println(list1.head) //返回的是头元素
        println(list1.tail) //返回的是除去head后剩下的列表
        println(fib(10))

        list1 zip list1.tail foreach println
    }
}